import { METHOD, request } from "../utils/request.js"
import {
    //### 自动生成的Api
    USER, // 用户
    ROLE, // 角色
    LEARN_SUBJECT, // 学习主分类
    LEARN_CATEGORY, // 学习次分类
    LEARN, // 学习
    PROJECT_SUBJECT, // 项目主分类
    PROJECT_CATEGORY, // 项目次分类
    PROJECT, // 项目
    PLAN_CATEGORY, // 计划分类
    PLAN_LEVEL, // 计划等级
    PLAN, // 计划
    BILL, // 账单
    //### 自动生成的Api
} from "../api/index.js"


//### 自动生成的Api

//************************ 用户管理
/**
 * 获取用户管理列表
 
* @returns [{ 
    nick_name : 昵称
    phone : 手机号
    email : 邮箱
    token : 凭证
    province : 凭证
    city : 凭证
    address : 凭证
    role_id : 角色ID
    type : 角色类型-0 管理用户 1 普通用户
  }]
 */
export async function getUser(params) {
    return new Promise((resolve, reject) => {
        request.get(
            `${config.getRequestHost()}/user`,
            params,
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 添加或修改用户管理
@param nick_name 昵称
@param phone 手机号
@param email 邮箱
@param token 凭证
@param province 凭证
@param city 凭证
@param address 凭证
@param role_id 角色ID
@param type 角色类型-0 管理用户 1 普通用户

 */
export async function postUser(params) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/user`,
            params,
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 获取用户管理对应的详情
 * @param id 详情id 
 
* @returns { 
    nick_name : 昵称
    phone : 手机号
    email : 邮箱
    token : 凭证
    province : 凭证
    city : 凭证
    address : 凭证
    role_id : 角色ID
    type : 角色类型-0 管理用户 1 普通用户
  }
 */
export async function getUser(id) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/user`,
            {'id': id},
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 删除用户管理
 * @param id 详情id 
 */
export async function getUser(id) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/user`,
            {'id': id},
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}



//************************ 角色管理
/**
 * 获取角色管理列表
 
* @returns [{ 
    name : 角色名称
    data : 角色数据
    type : 角色类型-0 超级权限 1 普通权限
  }]
 */
export async function getRole(params) {
    return new Promise((resolve, reject) => {
        request.get(
            `${config.getRequestHost()}/role`,
            params,
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 添加或修改角色管理
@param name 角色名称
@param data 角色数据
@param type 角色类型-0 超级权限 1 普通权限

 */
export async function postRole(params) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/role`,
            params,
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 获取角色管理对应的详情
 * @param id 详情id 
 
* @returns { 
    name : 角色名称
    data : 角色数据
    type : 角色类型-0 超级权限 1 普通权限
  }
 */
export async function getRole(id) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/role`,
            {'id': id},
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 删除角色管理
 * @param id 详情id 
 */
export async function getRole(id) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/role`,
            {'id': id},
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}



//************************ 学习主分类管理
/**
 * 获取学习主分类管理列表
 
* @returns [{ 
    name : 学习主分类名称
  }]
 */
export async function getLearnSubject(params) {
    return new Promise((resolve, reject) => {
        request.get(
            `${config.getRequestHost()}/learnSubject`,
            params,
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 添加或修改学习主分类管理
@param name 学习主分类名称

 */
export async function postLearnSubject(params) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/learnSubject`,
            params,
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 获取学习主分类管理对应的详情
 * @param id 详情id 
 
* @returns { 
    name : 学习主分类名称
  }
 */
export async function getLearnSubject(id) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/learnSubject`,
            {'id': id},
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 删除学习主分类管理
 * @param id 详情id 
 */
export async function getLearnSubject(id) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/learnSubject`,
            {'id': id},
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}



//************************ 学习次分类管理
/**
 * 获取学习次分类管理列表
 
* @returns [{ 
    name : 学习次分类名称
  }]
 */
export async function getLearnCategory(params) {
    return new Promise((resolve, reject) => {
        request.get(
            `${config.getRequestHost()}/learnCategory`,
            params,
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 添加或修改学习次分类管理
@param name 学习次分类名称

 */
export async function postLearnCategory(params) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/learnCategory`,
            params,
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 获取学习次分类管理对应的详情
 * @param id 详情id 
 
* @returns { 
    name : 学习次分类名称
  }
 */
export async function getLearnCategory(id) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/learnCategory`,
            {'id': id},
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 删除学习次分类管理
 * @param id 详情id 
 */
export async function getLearnCategory(id) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/learnCategory`,
            {'id': id},
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}



//************************ 学习管理
/**
 * 获取学习管理列表
 
* @returns [{ 
    title : 标题
    des : 描述
    cover : 关联图片
    content : 内容
    tag : 标签
    learn_subject_id : 关联学习主分类#learn_subject
    learn_category_id : 关联学习次分类#learn_category
    user_id : 关联用户#user
    see : 查看
    star : 点赞
    coment : 评论
  }]
 */
export async function getLearn(params) {
    return new Promise((resolve, reject) => {
        request.get(
            `${config.getRequestHost()}/learn`,
            params,
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 添加或修改学习管理
@param title 标题
@param des 描述
@param cover 关联图片
@param content 内容
@param tag 标签
@param learn_subject_id 关联学习主分类#learn_subject
@param learn_category_id 关联学习次分类#learn_category
@param user_id 关联用户#user
@param see 查看
@param star 点赞
@param coment 评论

 */
export async function postLearn(params) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/learn`,
            params,
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 获取学习管理对应的详情
 * @param id 详情id 
 
* @returns { 
    title : 标题
    des : 描述
    cover : 关联图片
    content : 内容
    tag : 标签
    learn_subject_id : 关联学习主分类#learn_subject
    learn_category_id : 关联学习次分类#learn_category
    user_id : 关联用户#user
    see : 查看
    star : 点赞
    coment : 评论
  }
 */
export async function getLearn(id) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/learn`,
            {'id': id},
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 删除学习管理
 * @param id 详情id 
 */
export async function getLearn(id) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/learn`,
            {'id': id},
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}



//************************ 项目主分类管理
/**
 * 获取项目主分类管理列表
 
* @returns [{ 
    name : 项目主分类名称
  }]
 */
export async function getProjectSubject(params) {
    return new Promise((resolve, reject) => {
        request.get(
            `${config.getRequestHost()}/projectSubject`,
            params,
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 添加或修改项目主分类管理
@param name 项目主分类名称

 */
export async function postProjectSubject(params) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/projectSubject`,
            params,
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 获取项目主分类管理对应的详情
 * @param id 详情id 
 
* @returns { 
    name : 项目主分类名称
  }
 */
export async function getProjectSubject(id) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/projectSubject`,
            {'id': id},
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 删除项目主分类管理
 * @param id 详情id 
 */
export async function getProjectSubject(id) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/projectSubject`,
            {'id': id},
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}



//************************ 项目次分类管理
/**
 * 获取项目次分类管理列表
 
* @returns [{ 
    name : 项目次分类名称
  }]
 */
export async function getProjectCategory(params) {
    return new Promise((resolve, reject) => {
        request.get(
            `${config.getRequestHost()}/projectCategory`,
            params,
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 添加或修改项目次分类管理
@param name 项目次分类名称

 */
export async function postProjectCategory(params) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/projectCategory`,
            params,
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 获取项目次分类管理对应的详情
 * @param id 详情id 
 
* @returns { 
    name : 项目次分类名称
  }
 */
export async function getProjectCategory(id) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/projectCategory`,
            {'id': id},
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 删除项目次分类管理
 * @param id 详情id 
 */
export async function getProjectCategory(id) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/projectCategory`,
            {'id': id},
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}



//************************ 项目管理
/**
 * 获取项目管理列表
 
* @returns [{ 
    title : 标题
    des : 描述
    cover : 封面图片
    content : 内容
    tag : 标签
    project_subject_id : 关联项目主分类#learn_subject
    project_category_id : 关联项目次分类#learn_category
    user_id : 关联用户#user
    progress : 进度
  }]
 */
export async function getProject(params) {
    return new Promise((resolve, reject) => {
        request.get(
            `${config.getRequestHost()}/project`,
            params,
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 添加或修改项目管理
@param title 标题
@param des 描述
@param cover 封面图片
@param content 内容
@param tag 标签
@param project_subject_id 关联项目主分类#learn_subject
@param project_category_id 关联项目次分类#learn_category
@param user_id 关联用户#user
@param progress 进度

 */
export async function postProject(params) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/project`,
            params,
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 获取项目管理对应的详情
 * @param id 详情id 
 
* @returns { 
    title : 标题
    des : 描述
    cover : 封面图片
    content : 内容
    tag : 标签
    project_subject_id : 关联项目主分类#learn_subject
    project_category_id : 关联项目次分类#learn_category
    user_id : 关联用户#user
    progress : 进度
  }
 */
export async function getProject(id) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/project`,
            {'id': id},
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 删除项目管理
 * @param id 详情id 
 */
export async function getProject(id) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/project`,
            {'id': id},
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}



//************************ 计划分类管理
/**
 * 获取计划分类管理列表
 
* @returns [{ 
    name : 计划分类名称
  }]
 */
export async function getPlanCategory(params) {
    return new Promise((resolve, reject) => {
        request.get(
            `${config.getRequestHost()}/planCategory`,
            params,
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 添加或修改计划分类管理
@param name 计划分类名称

 */
export async function postPlanCategory(params) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/planCategory`,
            params,
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 获取计划分类管理对应的详情
 * @param id 详情id 
 
* @returns { 
    name : 计划分类名称
  }
 */
export async function getPlanCategory(id) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/planCategory`,
            {'id': id},
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 删除计划分类管理
 * @param id 详情id 
 */
export async function getPlanCategory(id) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/planCategory`,
            {'id': id},
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}



//************************ 计划等级管理
/**
 * 获取计划等级管理列表
 
* @returns [{ 
    name : 计划等级名称
  }]
 */
export async function getPlanLevel(params) {
    return new Promise((resolve, reject) => {
        request.get(
            `${config.getRequestHost()}/planLevel`,
            params,
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 添加或修改计划等级管理
@param name 计划等级名称

 */
export async function postPlanLevel(params) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/planLevel`,
            params,
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 获取计划等级管理对应的详情
 * @param id 详情id 
 
* @returns { 
    name : 计划等级名称
  }
 */
export async function getPlanLevel(id) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/planLevel`,
            {'id': id},
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 删除计划等级管理
 * @param id 详情id 
 */
export async function getPlanLevel(id) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/planLevel`,
            {'id': id},
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}



//************************ 计划管理
/**
 * 获取计划管理列表
 
* @returns [{ 
    title : 标题
    des : 描述
    begin_time : 开始时间
    duration : 持续时间
    score : 分数
    tag : 标签
    user_id : 关联用户#user
    plan_category_id : 关联计划分类#plan_category
    plan_level_id : 关联计划等级#plan_level
    learn_id : 关联学习#learn
  }]
 */
export async function getPlan(params) {
    return new Promise((resolve, reject) => {
        request.get(
            `${config.getRequestHost()}/plan`,
            params,
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 添加或修改计划管理
@param title 标题
@param des 描述
@param begin_time 开始时间
@param duration 持续时间
@param score 分数
@param tag 标签
@param user_id 关联用户#user
@param plan_category_id 关联计划分类#plan_category
@param plan_level_id 关联计划等级#plan_level
@param learn_id 关联学习#learn

 */
export async function postPlan(params) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/plan`,
            params,
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 获取计划管理对应的详情
 * @param id 详情id 
 
* @returns { 
    title : 标题
    des : 描述
    begin_time : 开始时间
    duration : 持续时间
    score : 分数
    tag : 标签
    user_id : 关联用户#user
    plan_category_id : 关联计划分类#plan_category
    plan_level_id : 关联计划等级#plan_level
    learn_id : 关联学习#learn
  }
 */
export async function getPlan(id) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/plan`,
            {'id': id},
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 删除计划管理
 * @param id 详情id 
 */
export async function getPlan(id) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/plan`,
            {'id': id},
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}



//************************ 账单管理
/**
 * 获取账单管理列表
 
* @returns [{ 
    title : 标题
    des : 描述
    begin_time : 开始时间
    duration : 持续时间
    score : 分数
    tag : 标签
    user_id : 关联用户#user
    plan_category_id : 关联计划分类#plan_category
    plan_level_id : 关联计划等级#plan_level
    learn_id : 关联学习#learn
  }]
 */
export async function getBill(params) {
    return new Promise((resolve, reject) => {
        request.get(
            `${config.getRequestHost()}/bill`,
            params,
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 添加或修改账单管理
@param title 标题
@param des 描述
@param begin_time 开始时间
@param duration 持续时间
@param score 分数
@param tag 标签
@param user_id 关联用户#user
@param plan_category_id 关联计划分类#plan_category
@param plan_level_id 关联计划等级#plan_level
@param learn_id 关联学习#learn

 */
export async function postBill(params) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/bill`,
            params,
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 获取账单管理对应的详情
 * @param id 详情id 
 
* @returns { 
    title : 标题
    des : 描述
    begin_time : 开始时间
    duration : 持续时间
    score : 分数
    tag : 标签
    user_id : 关联用户#user
    plan_category_id : 关联计划分类#plan_category
    plan_level_id : 关联计划等级#plan_level
    learn_id : 关联学习#learn
  }
 */
export async function getBill(id) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/bill`,
            {'id': id},
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

/**
 * 删除账单管理
 * @param id 详情id 
 */
export async function getBill(id) {
    return new Promise((resolve, reject) => {
        request.post(
            `${config.getRequestHost()}/bill`,
            {'id': id},
            success_data => {
                resolve(success_data);
            },
            error => {
                reject(error);
            }
        ); 
    });
}

//### 自动生成的Api